home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / Vk / VkMsgClient.z / VkMsgClient
Text File  |  1998-10-20  |  24KB  |  595 lines

  1.  
  2.  
  3.  
  4. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      VkMsgClient - ViewKit application interface to the ViewKit Message
  10.      Facility
  11.  
  12. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  13.      #include <Vk/VkMsgClient.h>
  14.  
  15. PPPPUUUUBBBBLLLLIIIICCCC PPPPRRRROOOOTTTTOOOOCCCCOOOOLLLL SSSSUUUUMMMMMMMMAAAARRRRYYYY
  16.    CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr////DDDDeeeessssttttrrrruuuuccccttttoooorrrr
  17.           VkMsgClient(VkMsgFacilityCallback callback,
  18.                       void *client_data);
  19.  
  20.           void ~VkMsgClient(void);
  21.  
  22.  
  23.    MMMMeeeessssssssaaaaggggeeee PPPPaaaatttttttteeeerrrrnnnnssss
  24.            void registerPattern(char* op,
  25.                       VkMsgCategory category = VK_MSG_OBSERVE);
  26.  
  27.            void updatePatterns(void);
  28.  
  29.            VkMsgStatus registerPattern(VkMsgPattern pat);
  30.  
  31.            VkMsgStatus unregisterPattern(VkMsgPattern pat);
  32.  
  33.            VkMsgStatus destroyPattern(VkMsgPattern pat);
  34.  
  35.  
  36.    MMMMeeeessssssssaaaaggggeeee AAAAccccttttiiiioooonnnnssss
  37.            VkMsgPattern addAction(char* op, VkMsgClientAction proc,
  38.                                   void *client_data,
  39.                                   VkMsgActionType type,
  40.                                   Boolean deleteMessage = True);
  41.  
  42.            VkMsgPattern createAction(char* op, VkMsgClientAction proc,
  43.                                     void *client_data,
  44.                                     VkMsgActionType type,
  45.                                     Boolean deleteMessage = True);
  46.  
  47.            void removeAction(VkMsgPattern pat);
  48.  
  49.            Boolean findAction(char* name, VkMsgClientAction* proc,
  50.                               void **client_data,
  51.                               Boolean *deleteMessage);
  52.  
  53.  
  54.    MMMMeeeessssssssaaaaggggeeee TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss
  55.            void addTranslation(char* name,
  56.                                VkMsgClientAction proc,
  57.                                void *client_data,
  58.                                Boolean deleteMessage = True);
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  71.  
  72.  
  73.  
  74.            void removeTranslation(char* name);
  75.  
  76.  
  77.    SSSSeeeennnnddddiiiinnnngggg NNNNoooottttiiiicccceeeessss
  78.            void sendNotice(char* op, int argc, VkMsgArg* argv);
  79.  
  80.            void sendNotice(char* op);
  81.  
  82.            void sendStringNotice(char* op ...);
  83.  
  84.            void sendIntNotice(char* op ...);
  85.  
  86.            void sendFileNotice(char* op, char* file,
  87.                                int argc, VkMsgArg* argv);
  88.  
  89.            void sendFileNotice(char* op, char* file);
  90.  
  91.            void sendStringFileNotice(char* op, char* file ...);
  92.  
  93.            void sendIntFileNotice(char* op, char* file ...);
  94.  
  95.  
  96.    SSSSeeeennnnddddiiiinnnngggg RRRReeeeqqqquuuueeeessssttttssss
  97.            VkMsgMessage sendRequest(char* op, int argc,
  98.                                     VkMsgArg* argv);
  99.  
  100.            VkMsgMessage sendRequest(char* op);
  101.  
  102.            VkMsgMessage sendSyncRequest(char* op, int argc,
  103.                                         VkMsgArg* argv,
  104.                                 int timeout = DEFAULT_SYNC_TIMEOUT);
  105.  
  106.            VkMsgMessage sendSyncRequest(char* op,
  107.                                  int timeout = DEFAULT_SYNC_TIMEOUT);
  108.  
  109.            VkMsgMessage sendFileRequest(char* op, char* file,
  110.                                          int argc, VkMsgArg* argv);
  111.  
  112.            VkMsgMessage sendFileRequest(char* op, char* file);
  113.  
  114.            VkMsgMessage sendSyncFileRequest(char* op, char* file,
  115.                                            int argv, VkMsgArg* argv,
  116.                                  int timeout = DEFAULT_SYNC_TIMEOUT);
  117.  
  118.            VkMsgMessage sendSyncFileRequest(char* op, char* file,
  119.                                  int timeout = DEFAULT_SYNC_TIMEOUT);
  120.  
  121.  
  122.    CCCCoooommmmppppoooossssiiiinnnngggg MMMMeeeessssssssaaaaggggeeee AAAArrrrgggguuuummmmeeeennnnttttssss
  123.            void composeBegin(void);
  124.  
  125.            void composeAdd(VkMsgArg* arg);
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  137.  
  138.  
  139.  
  140.            void composeAdd(char* val, VkMsgMode mode = VK_MSG_IN);
  141.  
  142.            void composeAdd(int ival, VkMsgMode mode = VK_MSG_IN);
  143.  
  144.            void composeAdd(unsigned char* bval, int len,
  145.                            VkMsgMode mode = VK_MSG_IN);
  146.  
  147.            VkMsgArg* composeList(void);
  148.  
  149.            int composeNum(void);
  150.  
  151.  
  152.  
  153.  
  154. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  155.      VkMsgClient is the normal way application code interacts with the message
  156.      facility.  There are methods for sending and receiving messages,
  157.      installing message actions, and registering interest in message patterns.
  158.  
  159. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  160.    VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt(((())))
  161.            VkMsgClient(VkMsgFacilityCallback callback,
  162.                       void *client_data);
  163.  
  164.            void ~VkMsgClient(void);
  165.  
  166.  
  167.           The callback is called whenever messages are received for this
  168.           client.
  169.  
  170.           However, usually messages are handled through message-specific
  171.           callbacks (actions).  See the _a_d_d_A_c_t_i_o_n() method.
  172.  
  173.    rrrreeeeggggiiiisssstttteeeerrrrPPPPaaaatttttttteeeerrrrnnnn(((())))
  174.            void registerPattern(char* op,
  175.                          VkMsgCategory category = VK_MSG_OBSERVE);
  176.  
  177.  
  178.           Express interest in messages whose operator string match the first
  179.           argument.  The second argument should be _V_K__M_S_G__O_B_S_E_R_V_E or
  180.           _V_K__M_S_G__H_A_N_D_L_E to deal with notices or requests, respectively.
  181.  
  182.           However, usually messages are handled through message-specific
  183.           callbacks (actions).  See the _a_d_d_A_c_t_i_o_n() method, which
  184.           automatically creates and register patterns.
  185.  
  186.    uuuuppppddddaaaatttteeeePPPPaaaatttttttteeeerrrrnnnnssss(((())))
  187.            void updatePatterns(void);
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  203.  
  204.  
  205.  
  206.           Call updatePatterns when you want to add new message patterns after
  207.           connecting to the ToolTalk service.  To be safe, call this method
  208.           after you are done using the _a_d_d_A_c_t_i_o_n() and _r_e_g_i_s_t_e_r_P_a_t_t_e_r_n()
  209.           methods.
  210.  
  211.    aaaaddddddddAAAAccccttttiiiioooonnnn(((())))
  212.            VkMsgPattern addAction(char* op,
  213.                                   VkMsgClientAction proc,
  214.                                   void *client_data,
  215.                                   VkMsgActionType type,
  216.                                   Boolean deleteMessage = True);
  217.  
  218.  
  219.           Add a message-specific callback.  The first argument is the message
  220.           operator string.  The second and third arguments are the callback
  221.           and callback data to call.  The fourth argument is the type of
  222.           action, _V_K__M_S_G__A_C_T_I_O_N__O_B_S_E_R_V_E (notices), _V_K__M_S_G__A_C_T_I_O_N__H_A_N_D_L_E
  223.           (requests), _V_K__M_S_G__A_C_T_I_O_N__H_A_N_D_L_E__S_P_E_C_I_F_I_C (requests matching the
  224.           exact pattern), _V_K__M_S_G__A_C_T_I_O_N__R_E_P_L_Y (replies to requests),
  225.           _V_K__M_S_G__A_C_T_I_O_N__F_A_I_L (failed requests), _V_K__M_S_G__A_C_T_I_O_N__S_T_A_R_T (autostart
  226.           of handlers to service requests).  The last argument specifies
  227.           deletion of the message after the callback returns.
  228.  
  229.           Be sure to add your message actions before entering any Xt event
  230.           loop.  Otherwise, messages may be received before the action is
  231.           registered, and they will not be processed as expected.  The Xt
  232.           event loop is entered when you call _V_k_A_p_p::_r_u_n(), or when you post a
  233.           ViewKit dialog and a short, secondary event loop is entered.
  234.  
  235.    ccccrrrreeeeaaaatttteeeeAAAAccccttttiiiioooonnnn(((())))
  236.            VkMsgPattern createAction(char* op,
  237.                                      VkMsgClientAction proc,
  238.                                      void *client_data,
  239.                                      VkMsgActionType type,
  240.                                      Boolean deleteMessage = True);
  241.  
  242.  
  243.           Creates a message action, but doesn't register it yet.  You can then
  244.           use ToolTalk routines like _V_k_M_s_g_P_a_t_t_e_r_n_A_r_g() to add argument types
  245.           and values to the pattern before registering it with the
  246.           _r_e_g_i_s_t_e_r_P_a_t_t_e_r_n() method.  Use the _r_e_g_i_s_t_e_r_P_a_t_t_e_r_n() method to
  247.           register your pattern.
  248.  
  249.    rrrreeeemmmmoooovvvveeeeAAAAccccttttiiiioooonnnn(((())))
  250.            void removeAction(VkMsgPattern pat);
  251.  
  252.  
  253.           Removes an action.  The pattern is automatically unregistered.
  254.  
  255.    aaaaddddddddTTTTrrrraaaannnnssssllllaaaattttiiiioooonnnn(((())))
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  269.  
  270.  
  271.  
  272.            void addTranslation(char* name,
  273.                                VkMsgClientAction proc,
  274.                                void *client_data,
  275.                                Boolean deleteMessage = True);
  276.  
  277.  
  278.           When using resource-specified patterns (vkmsgTranslations), adds a
  279.           callback for the named translation.  Similar to the _a_d_d_A_c_t_i_o_n()
  280.           method.
  281.  
  282.    rrrreeeemmmmoooovvvveeeeTTTTrrrraaaannnnssssllllaaaattttiiiioooonnnn(((())))
  283.            void removeTranslation(char* name);
  284.  
  285.  
  286.           Removes a translation.
  287.  
  288.    ffffiiiinnnnddddAAAAccccttttiiiioooonnnn(((())))
  289.            Boolean findAction(char* name,
  290.                               VkMsgClientAction* proc,
  291.                               void **client_data,
  292.                               Boolean *deleteMessage);
  293.  
  294.  
  295.           Looks for a named action in this client for the operator string.
  296.           Returns the callback, callback-data, and whether to delete the
  297.           message after the callback returns.
  298.  
  299.    sssseeeennnnddddNNNNoooottttiiiicccceeee(((())))
  300.            void sendNotice(char* op, int argc, VkMsgArg* argv);
  301.  
  302.  
  303.           Send a notice.  The first argument is the operator string, the
  304.           second argument is the number of message arguments, and the third
  305.           argument is the array of message arguments.  Message arguments come
  306.           in three types, _V_K__M_S_G__I_N_T__M_S_G__A_R_G__T_Y_P_E, _V_K__M_S_G__S_T_R_I_N_G__M_S_G__A_R_G__T_Y_P_E,
  307.           and _V_K__M_S_G__B_S_T_R_I_N_G__M_S_G__A_R_G__T_Y_P_E.  Message arguments come in three
  308.           modes, _V_K__M_S_G__I_N, _V_K__M_S_G__O_U_T, and _V_K__M_S_G__I_N_O_U_T.
  309.  
  310.  
  311.            void sendNotice(char* op);
  312.  
  313.  
  314.           Send a notice.  The first argument is the operator string, and the
  315.           composed message arguments list is used (see the composeBegin and
  316.           composeAdd methods).
  317.  
  318.    sssseeeennnnddddSSSSttttrrrriiiinnnnggggNNNNoooottttiiiicccceeee(((())))
  319.            void sendStringNotice(char* op ...);
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  335.  
  336.  
  337.  
  338.           Send a notice with only string arguments.  The first argument is the
  339.           operator string.  The remaining arguments are a NULL-terminated list
  340.           of string arguments for the message.
  341.  
  342.    sssseeeennnnddddIIIInnnnttttNNNNoooottttiiiicccceeee(((())))
  343.            void sendIntNotice(char* op ...);
  344.  
  345.  
  346.           Send a notice with only integer arguments.  The first argument is
  347.           the operator string.  The remaining arguments are a NULL-terminated
  348.           list of integer arguments for the message.  Note that you cannot
  349.           send any zero arguments, since NULL terminates the list.
  350.  
  351.    sssseeeennnnddddFFFFiiiilllleeeeNNNNoooottttiiiicccceeee(((())))
  352.            void sendFileNotice(char* op, char* file,
  353.                                int argc, VkMsgArg* argv);
  354.  
  355.  
  356.           Same as the _s_e_n_d_N_o_t_i_c_e() method, except sets the filename attribute
  357.           to the second argument.
  358.  
  359.            void sendFileNotice(char* op, char* file);
  360.  
  361.  
  362.           Same as the _s_e_n_d_N_o_t_i_c_e() _m_e_t_h_o_d, _e_x_c_e_p_t _s_e_t_s _t_h_e _f_i_l_e_n_a_m_e _a_t_t_r_i_b_u_t_e
  363.           _t_o _t_h_e _s_e_c_o_n_d _a_r_g_u_m_e_n_t.
  364.  
  365.    sssseeeennnnddddSSSSttttrrrriiiinnnnggggFFFFiiiilllleeeeNNNNoooottttiiiicccceeee(((())))
  366.            void sendStringFileNotice(char* op, char* file ...);
  367.  
  368.  
  369.           Same as the _s_e_n_d_S_t_r_i_n_g_N_o_t_i_c_e() method, except sets the filename
  370.           attribute to the second argument.
  371.  
  372.    sssseeeennnnddddIIIInnnnttttFFFFiiiilllleeeeNNNNoooottttiiiicccceeee(((())))
  373.            void sendIntFileNotice(char* op, char* file ...);
  374.  
  375.  
  376.           Same as the _s_e_n_d_I_n_t_N_o_t_i_c_e() method, except sets the filename
  377.           attribute to the second argument.
  378.  
  379.    sssseeeennnnddddRRRReeeeqqqquuuueeeesssstttt(((())))
  380.            VkMsgMessage sendRequest(char* op, int argc,
  381.                                     VkMsgArg* argv);
  382.  
  383.  
  384.           Send a request.  The first argument is the operator string, the
  385.           second argument is the number of message arguments, and the third
  386.           argument is the array of message arguments.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  401.  
  402.  
  403.  
  404.            VkMsgMessage sendRequest(char* op);
  405.  
  406.  
  407.           Send a request.  The first argument is the operator string, and the
  408.           composed message arguments list is used (see the _c_o_m_p_o_s_e_B_e_g_i_n() and
  409.           _c_o_m_p_o_s_e_A_d_d() methods).
  410.  
  411.    sssseeeennnnddddSSSSyyyynnnnccccRRRReeeeqqqquuuueeeesssstttt(((())))
  412.            VkMsgMessage sendSyncRequest(char* op, int argc,
  413.                                         VkMsgArg* argv,
  414.                               int timeout = DEFAULT_SYNC_TIMEOUT);
  415.  
  416.  
  417.           Like the _s_e_n_d_R_e_q_u_e_s_t() method, but simulates a synchronous request
  418.           where we wait for the reply message.  The reply message is returned,
  419.           NULL if no reply was received within the timeout period.  The last
  420.           argument specifies the timeout period in seconds, and defaults to
  421.           60.  The resource value for "defaultSyncTimeout" will override this
  422.           default.  Using a timeout of zero will disable the timeout
  423.           completely.  Use VkMsgDestroy to destroy the reply when done.
  424.  
  425.            VkMsgMessage sendSyncRequest(char* op,
  426.                        int timeout = DEFAULT_SYNC_TIMEOUT);
  427.  
  428.  
  429.           Like the _s_e_n_d_S_y_n_c_R_e_q_u_e_s_t() method, but uses the composed message
  430.           arguments list.
  431.  
  432.    sssseeeennnnddddFFFFiiiilllleeeeRRRReeeeqqqquuuueeeesssstttt(((())))
  433.            VkMsgMessage sendFileRequest(char* op, char* file,
  434.                                         int argc, VkMsgArg* argv);
  435.  
  436.  
  437.           Like the _s_e_n_d_R_e_q_u_e_s_t() method, but sets the filename attribute to
  438.           the second argument.
  439.  
  440.            VkMsgMessage sendFileRequest(char* op, char* file);
  441.  
  442.  
  443.           Like the _s_e_n_d_R_e_q_u_e_s_t() method, but sets the filename attribute to
  444.           the second argument.
  445.  
  446.    sssseeeennnnddddSSSSyyyynnnnccccFFFFiiiilllleeeeRRRReeeeqqqquuuueeeesssstttt(((())))
  447.            VkMsgMessage sendSyncFileRequest(char* op, char* file,
  448.                                            int argv, VkMsgArg* argv,
  449.                                int timeout = DEFAULT_SYNC_TIMEOUT);
  450.  
  451.  
  452.           Like the _s_e_n_d_S_y_n_c_R_e_q_u_e_s_t() method, but sets the filename attribute
  453.           to the second argument.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  467.  
  468.  
  469.  
  470.            VkMsgMessage sendSyncFileRequest(char* op, char* file,
  471.                            int timeout = DEFAULT_SYNC_TIMEOUT);
  472.  
  473.  
  474.           Like the _s_e_n_d_S_y_n_c_R_e_q_u_e_s_t() method, but sets the filename attribute
  475.           to the second argument.
  476.  
  477.    ccccoooommmmppppoooosssseeeeBBBBeeeeggggiiiinnnn(((())))
  478.            void composeBegin(void);
  479.  
  480.  
  481.           Initialize and clear the composed message arguments list.
  482.  
  483.    ccccoooommmmppppoooosssseeeeAAAAdddddddd(((())))
  484.            void composeAdd(VkMsgArg* arg);
  485.  
  486.  
  487.           Add an argument to the composed message arguments list.  The
  488.           _V_k_M_s_g_A_r_g structure contains the type, value, and mode of the
  489.           argument.
  490.  
  491.            void composeAdd(char* val,
  492.                            VkMsgMode mode = VK_MSG_IN);
  493.  
  494.  
  495.           Add a string argument to the composed message arguments list.  The
  496.           second argument indicates the mode, and defaults to _V_K__M_S_G__I_N.
  497.  
  498.            void composeAdd(int ival,
  499.                            VkMsgMode mode = VK_MSG_IN);
  500.  
  501.  
  502.           Add an integer argument to the composed message arguments list.  The
  503.           second argument indicates the mode, and defaults to _V_K__M_S_G__I_N.
  504.  
  505.            void composeAdd(unsigned char* bval,
  506.                            int len,
  507.                            VkMsgMode mode = VK_MSG_IN);
  508.  
  509.  
  510.           Add a binary string argument to the composed message arguments list.
  511.           The second argument indicates the mode, and defaults to _V_K__M_S_G__I_N.
  512.  
  513.    ccccoooommmmppppoooosssseeeeLLLLiiiisssstttt(((())))
  514.            VkMsgArg* composeList(void);
  515.  
  516.  
  517.           Returns the composed message arguments list.
  518.  
  519.    ccccoooommmmppppoooosssseeeeNNNNuuuummmm(((())))
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))                                                VVVVkkkkMMMMssssggggCCCClllliiiieeeennnntttt((((3333xxxx))))
  533.  
  534.  
  535.  
  536.            int composeNum(void);
  537.  
  538.  
  539.           Returns the size of the composed message arguments list.
  540.  
  541.    rrrreeeeggggiiiisssstttteeeerrrrPPPPaaaatttttttteeeerrrrnnnn(((())))
  542.            VkMsgStatus registerPattern(VkMsgPattern pat);
  543.  
  544.  
  545.           Register a pattern created by the createPattern method and express
  546.           interests in those messages.  Once a pattern is registered, messages
  547.           will be received which match the pattern.
  548.  
  549.    uuuunnnnrrrreeeeggggiiiisssstttteeeerrrrPPPPaaaatttttttteeeerrrrnnnn(((())))
  550.            VkMsgStatus unregisterPattern(VkMsgPattern pat);
  551.  
  552.  
  553.           Unregister a previously-registered pattern from the registerPattern
  554.           method.  Messages will no longer be received for that pattern.
  555.  
  556.    ddddeeeessssttttrrrrooooyyyyPPPPaaaatttttttteeeerrrrnnnn(((())))
  557.            VkMsgStatus destroyPattern(VkMsgPattern pat);
  558.  
  559.  
  560.           Destroy patterns created by the registerPattern or createPattern
  561.           methods.  Destroying a pattern automatically unregisters it.
  562.  
  563. CCCCLLLLAAAASSSSSSSSEEEESSSS UUUUSSSSEEEEDDDD BBBBYYYY TTTTHHHHIIIISSSS CCCCLLLLAAAASSSSSSSS
  564.      VkMsgFacility, VkMsgService
  565.  
  566. KKKKNNNNOOOOWWWWNNNN CCCCLLLLAAAASSSSSSSSEEEESSSS TTTTHHHHAAAATTTT UUUUSSSSEEEE TTTTHHHHIIIISSSS CCCCLLLLAAAASSSSSSSS
  567.      VkMsgApp, VkMsgClient, VkMsgComponent, VkMsgService, VkMsgWindow
  568.  
  569. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  570.      VkMsgApp, VkMsgClient, VkMsgComponent, VkMsgFacility, VkMsgService,
  571.      VkMsgWindow
  572.      _V_i_e_w_K_i_t _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
  573.      _T_h_e _X _W_i_n_d_o_w _S_y_s_t_e_m, DEC Press, Bob Sheifler and Jim Gettys
  574.      _T_h_e _X _W_i_n_d_o_w _S_y_s_t_e_m _T_o_o_l_k_i_t, DEC Press, Paul Asente and Ralph Swick
  575.      _T_h_e _O_S_F/_M_o_t_i_f _P_r_o_g_r_a_m_m_e_r_s _R_e_f_e_r_e_n_c_e, Prentice Hall, OSF
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.